Capítulo 22 - Gestión de proyectos
Los proyectos necesitan administrarse porque la ingeniería de software profesional está sujeta siempre a restricciones organizacionales de presupuesto y fecha. El trabajo del administrador del proyecto es asegurarse de que el proyecto de software cumpla y supere tales restricciones, además de que entregue software de alta calidad.
La buena gestión no puede garantizar el éxito del proyecto. Sin embargo, la mala gestión, por lo general, da como resultado una falla del proyecto.
Metas importantes en un proyecto:
En un proyecto de ingeniería civil, si hay retraso en el calendario, es visible el efecto sobre el producto: es evidente que algunas partes de la estructura no están terminadas. El software es intangible. No se puede ver ni tocar. Los administradores de proyectos de software no pueden constatar el progreso con sólo observar el artefacto que se construye.
Los grandes proyectos de software se consideran en general diferentes en ciertas formas de los proyectos anteriores. Además, están los vertiginosos cambios tecnológicos en computadoras y comunicaciones. Las lecciones aprendidas de proyectos anteriores pueden no ser aplicables a nuevos proyectos.
El proceso de ingeniería para algunos tipos de sistemas clásicos es bastante comprendido. Sin embargo, los procesos de software varían mucho de una organización a otra. No es posible predecir de manera confiable cuándo un proceso de software particular conducirá a problemas de desarrollo.
Los administradores de proyecto son responsables de la planeación, estimación y calendarización del desarrollo del proyecto, así como de la asignación de tareas a las personas. Supervisan el trabajo para verificar que se realice de acuerdo con los estándares requeridos y monitorizan el avance para comprobar que el desarrollo esté a tiempo y dentro del presupuesto.
Los administradores de proyectos por lo común son responsables de informar del avance de un proyecto a los clientes y administradores de la compañía que desarrolla el software. Deben ser capaces de comunicarse en varios niveles, desde codificar información técnica detallada hasta elaborar resúmenes administrativos.
Los administradores de proyecto tienen que valorar los riesgos que pueden afectar un proyecto, monitorizar dichos riesgos y emprender acciones cuando surjan problemas.
Los administradores de proyecto son responsables de administrar un equipo de personas. Deben elegir a los integrantes de sus equipos y establecer formas de trabajar que conduzcan a desempeño efectivo del equipo.
La primera etapa en un proyecto de software puede implicar escribir una propuesta para obtener un contrato de trabajo. La propuesta describe los objetivos del proyecto y cómo se realizará. La escritura de propuestas es una tarea esencial, pues la supervivencia de muchas compañías de software depende de contar con suficientes propuestas aceptadas y concesiones de contratos.
La gestión del riesgo implica anticipar riesgos que pudieran alterar el calendario del proyecto o la calidad del software a entregar, y posteriormente tomar acciones para evitar dichos riesgos. Podemos considerar un riesgo como algo que es preferible que no ocurra.
Los riesgos pueden amenazar el proyecto, el software que se desarrolla o a la organización.
Un ejemplo de riesgo de proyecto es la renuncia de un diseñador experimentado. Encontrar un diseñador de reemplazo con habilidades y experiencia adecuadas puede demorar mucho tiempo y, en consecuencia, el diseño del software tardará más tiempo en completarse.
Un ejemplo de riesgo de producto es la falla que presenta un componente que se adquirió al no desempeñarse como se esperaba. Esto puede afectar el rendimiento global del sistema, de modo que es más lento de lo previsto.
Un competidor que introduce un nuevo producto es un riesgo empresarial. La introducción de un producto competitivo puede significar que las suposiciones hechas sobre las ventas de los productos de software existentes sean excesivamente optimistas.
Las categorías de los riesgos pueden superponerse.
Es necesario registrar los resultados del análisis del riesgo en el plan del proyecto, junto con un análisis de consecuencias, que establece las consecuencias del riesgo para el proyecto, el producto y la empresa.
Los riesgos específicos que podrían afectar un proyecto dependen del proyecto y el entorno de la organización donde se desarrolla el software. Sin embargo, también existen riesgos comunes que no se relacionan con el tipo de software a desarrollar y que pueden ocurrir en cualquier proyecto.
Particularmente importante para los proyectos de software, debido a la incertidumbre inherente que enfrentan la mayoría de proyectos.
Ésta se deriva de requerimientos vagamente definidos, cambios de requerimientos que obedecen a cambios en las necesidades del cliente, dificultades en estimar el tiempo y los recursos requeridos para el desarrollo de software, o bien, se deriva de diferencias en las habilidades individuales.
Es preciso documentar los resultados del proceso de gestión del riesgo en un plan de gestión del riesgo.
El proceso de gestión del riesgo es un proceso iterativo que continúa a lo largo del proyecto.
Se ocupa de identificar los riesgos que pudieran plantear una mayor amenaza al proceso de ingeniería de software, al software a desarrollar, o a la organización que lo desarrolla.
La identificación del riesgo puede ser un proceso de equipo en el que este se reúne para pensar en posibles riesgos. O bien, el administrador del proyecto, con base en su experiencia, identifica los riesgos más probables o críticos.
Como punto de partida para la identificación del riesgo, se recomienda utilizar una lista de verificación de diferentes tipos de riesgo. Existen al menos seis tipos de riesgos que pueden incluirse en una lista de verificación:
Entonces se necesita reducir esta lista a un tamaño razonable. Si existen demasiados riesgos, será prácticamente imposible seguir la huella de todos ellos.
Durante el proceso de análisis de riesgos, hay que considerar cada riesgo identificado y realizar un juicio acerca de la probabilidad y gravedad de dicho riesgo. Usted debe apoyarse en su propio juicio y en la experiencia obtenida en los proyectos anteriores y los problemas que surgieron en ellos.
No es posible hacer valoraciones precisas y numéricas de la probabilidad y gravedad de cada riesgo. En vez de ello, habrá que asignar el riesgo a una de ciertas bandas:
Para hacer esta valoración, se necesita información detallada del proyecto, el proceso, el equipo de desarrollo y la organización. Desde luego, tanto la probabilidad como la valoración de los efectos de un riesgo pueden cambiar conforme se disponga de más información acerca del riesgo y a medida que se implementen planes de gestión del riesgo.
Por lo tanto, esta tabla se debe actualizar durante cada iteración del proceso de riesgo.
Una vez analizados y clasificados los riesgos, valore cuáles son los más significativos. Su juicio debe depender de una combinación de la probabilidad de que el riesgo surja junto con los efectos de dicho riesgo.
El número correcto de riesgos a monitorizar debe depender del proyecto.
Considera cada uno de los riesgos clave identificados y desarrolla estrategias para manejarlos. Para cada uno de los riesgos, usted debe considerar las acciones que puede tomar para minimizar la perturbación del proyecto si se produce el problema identificado en el riesgo. También debe pensar en la información que tal vez necesite recopilar mientras observa el proyecto para que pueda anticipar los problemas.
Las estrategias se establecen en tres categorías:
Desde luego, es mejor usar una estrategia que evitar el riesgo. Si esto no es posible, se debe usar una estrategia que reduzca las posibilidades de que el riesgo cause graves efectos. Finalmente, se debe contar con estrategias para enfrentar el riesgo cuando éste surja. Tales estrategias deben reducir el efecto global de un riesgo en el proyecto o el producto.
La monitorización del riesgo es el proceso para comprobar que no han cambiado sus suposiciones sobre riesgos del producto, el proceso y la empresa. Hay que valorar regularmente cada uno de los riesgos identificados para decidir si este riesgo se vuelve más o menos probable. También se tiene que considerar si los efectos del riesgo han cambiado o no. Los riesgos deben monitorizarse comúnmente en todas las etapas del proyecto.
Buenos indicadores a tener en cuenta:
Las personas que trabajan en una organización de software son los activos más importantes. Cuesta mucho dinero reclutar y retener al buen personal, así que depende de los administradores de software garantizar que la organización obtenga el mejor aprovechamiento posible por su inversión.
Cuatro factores críticos en la gestión de personal:
La gestión de personal es algo que debe basarse en la experiencia, en lugar de aprenderse en un libro.
¿Por qué desarrollar el equipo?
Como administrador de proyecto, usted necesitará motivar a las personas con quienes trabaja, de manera que éstas contribuyan con lo mejor de sus habilidades.
Motivación significa organizar el trabajo y el ambiente laboral para alentar a los individuos a desempeñarse tan efectivamente como sea posible.
Si las personas no están motivadas, no estarán interesadas en la actividad que realizan. Así que trabajarán con lentitud, y será más probable que cometan errores.
Sugiere que las personas se sienten motivadas para cubrir sus necesidades, las cuales se ordenan en una serie de niveles.
Los niveles más bajos de esta jerarquía representan necesidades fundamentales de alimentación, sueño, etcétera, y la necesidad de sentirse seguro en un ambiente.
Las necesidades sociales se relacionan con el hecho de sentirse parte de un grupo social. Las necesidades de estima representan la necesidad de sentirse respetado por otros, y las necesidades de autorrealización tienen que ver con el desarrollo personal.
Las personas que trabajan en organizaciones de desarrollo de software, por lo general, no están hambrientas ni sedientas ni físicamente amenazadas por su ambiente.
Asegurarse de que se cubren las necesidades sociales, de estima y autorrealización de las personas es más importante desde un punto de vista administrativo.
Clasifican a los profesionales en tres tipos:
Factores de higiene:
Dos supuestos opuestos que hacen los gerentes en cuanto a la naturaleza humana.
Grupo cohesivo: una unidad, motivados por el éxito del equipo y no el personal.
¿Cuáles son los beneficios de tener un equipo cohesivo?
¿Qué factores afectan un equipo?
La cantidad de posibles canales de comunicación en un equipo de proyecto está dada por la fórmula
Según Tuckman & Jensen, 1977
Esta es la fase en que se reúne el equipo y se informa acerca del proyecto y de cuáles son sus roles y responsabilidades formales. En esta fase, los miembros del equipo tienden a actuar de manera independiente y no demasiado abierta.
Durante esta fase, el equipo comienza a abordar el trabajo del proyecto, las decisiones técnicas y el enfoque de dirección del proyecto. Si los miembros del equipo no colaboran ni se muestran abiertos a ideas y perspectivas diferentes, el ambiente puede tornarse contraproducente.
En la fase de normalización, los miembros del equipo comienzan a trabajar conjuntamente y a ajustar sus hábitos y comportamientos para apoyar al equipo. Los miembros del equipo comienzan a confiar unos en otros.
Los equipos que alcanzan la etapa de desempeño funcionan como una unidad bien organizada. Son interdependientes y afrontan los problemas con eficacia y sin complicaciones.
En la fase de disolución, el equipo completa el trabajo y se desliga del proyecto. Esto sucede normalmente cuando se libera al personal del proyecto, al estar completos los entregables o como parte de la ejecución del proceso Cerrar el Proyecto.
Los conflictos son naturales e inevitables
Algunas fuentes:
Una actitud de apertura ayuda a resolverlos, su resolución debe centrarse en el problema, no en las personas y a la vez centrarse en el presente y no en el pasado.
SW entregado en incrementos .
No se hace un plan exhaustivo, se va decidiendo según el avance y las prioridades del cliente.
Manifiesto ágil 2001:
Un marco de trabajo mediante el cual las personas pueden hacer frente a problemas adaptativos complejos, mientras entregan, creativa y productivamente, productos del mayor valor posible.
--La guía Scrum - Julio 2013--
5 valores:
3 pilares
Es la versión mínima de un producto tal que nos permite recolectar la mayor cantidad de información de nuestro mercado con el menor esfuerzo.
Haciendo foco en características mínimas y necesarias para que el producto pueda lanzarse
Plan de sprints de acuerdo a la velocidad del equipo.
Considerando prioridades.